package org.ehe.system.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ehe.common.encrypt.annotation.EncryptField;
import org.ehe.common.encrypt.enumd.AlgorithmType;
import org.ehe.common.mybatis.core.domain.BaseEntity;
import org.ehe.common.sensitive.annotation.Sensitive;
import org.ehe.common.sensitive.core.SensitiveStrategy;

import java.util.Date;

/**
 * 员工家庭成员对象 hr_employee_family
 *
 * @author zhangnn
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hr_employee_family")
public class HrEmployeeFamily extends BaseEntity {

    /**
     * 家庭成员ID
     */
    @TableId(value = "family_id", type = IdType.AUTO)
    private Long familyId;

    /**
     * 工号
     */
    private String employeeNo;

    /**
     * 员工ID
     */
    @TableField("employee_id")
    private Long employeeId;

    /**
     * 成员姓名
     */
    @EncryptField(algorithm = AlgorithmType.AES)
    private String memberName;

    /**
     * 与员工关系（1父亲 2母亲 3配偶 4子女 5其他）
     */
    private String relationship;

    /**
     * 出生日期
     */
    private Date birthDate;

    /**
     * 身份证号
     */
    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
    @EncryptField(algorithm = AlgorithmType.AES)
    private String idCard;

    /**
     * 联系方式
     */
    @Sensitive(strategy = SensitiveStrategy.PHONE)
    @EncryptField(algorithm = AlgorithmType.AES)
    private String phone;

    /**
     * 工作单位
     */
    @EncryptField(algorithm = AlgorithmType.AES)
    private String workUnit;

    /**
     * 是否紧急联系人（0否 1是）
     */
    private String isEmergencyContact;

    /**
     * 数据加密标识（0否 1是）
     */
    private String isEncrypted;

}
